package com.twentytwok.hospitalsystem22K.controller;

import com.twentytwok.hospitalsystem22K.common.R;
import com.twentytwok.hospitalsystem22K.pojo.Book;
import com.twentytwok.hospitalsystem22K.service.BookService;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 预约的controller
 *
 * @author Yuanao
 * @date 2021年11月11日 21:12:34
 */
@RestController
@RequestMapping("/api/book")
@CrossOrigin("*")
public class BookController {

    @Resource
    private BookService bookService;

    /**
     * 查询所有的时间段信息
     * 
     * @return json
     */
    @RequestMapping("/getTimeQuantums")
    public R getTimeQuantums(){
        return bookService.getTimeQuantums();
    }
    

    /**
     * 获取所有预约信息
     * @param page 当前页
     * @param limit 每页的数量
     * @param userId 用户id
     * @param doctorUserId 医生id
     * @return 返回JSON
     */
    @RequestMapping("/getBooks")
    public R getBooks(@RequestParam Integer page,@RequestParam Integer limit, Integer userId , Integer doctorUserId) {
        return bookService.getBooks(page,limit, userId,doctorUserId);
    }

    /**
     * 更具指定的id获取管理员信息
     *
     * @param id id号
     * @return 返回JSON
     */
    @RequestMapping("/getBook")
    public R getBook( @RequestParam Integer id) {
        return bookService.getBook(id);
    }

    /**
     * 添加用户
     * @param book 前端传输里的字段
     * @return 返回json
     */
    @RequestMapping("/addBook")
    public R addBook(Book book) {
        return bookService.addBook(book);
    }


    /**
     * 修改管理员信息
     * 必须包含id 属性
     *
     * @param book 修改后的信息
     * @return 返回json
     */
    @RequestMapping("/modifyBook")
    public R modifyBook(Book book) {

        return bookService.modifyBook(book);
    }


    /**
     * 删除预约单
     * @data 2021年11月12日11:07:53
     *
     * @param id 管理员的id
     * @return 返回JSON
     */
    @RequestMapping("/deleteBook")
    public R deleteBook(Integer id) {
        return bookService.deleteBook(id);
    }

    /**
     * 提交预约订单,并且返回预约单id
     *
     * @param book 预约信息
     * @return json
     */
    @RequestMapping("/submitBook")
    public R submitBook(Book book) {
        return bookService.submitBook(book);
    }

    /**
     * 获取指定用户的预约信息
     *
     * @param id 用户id
     * @return json
     */
    @RequestMapping("/getUserSelectBook")
    public R getUserSelectBook(Integer id) {
        return bookService.getUserSelectBook(id);
    }

}
